#define _CRT_SECURE_NO_WARNINGS 1
#include <string.h>
#include <assert.h>
#include <stdio.h>

//作业标题(1462)
//模拟实现memcpy
//
//作业内容
//模拟实现memcpy

//void* my_memcpy(void* destination,const void* source,size_t num)
//{
//	assert(destination&&source);
//	void* ret = destination;
//	while (num--)
//	{
//		*(char*)destination = *(char*)source;
//		((char*)destination)++;
//		((char*)source)++;
//	}
//	return ret;
//}
//int main()
//{
//	int arr1[] = { 1,2,3,4,5,6,7,8,9,10 };
//	int arr2[] = {11,22,33,44,55};
//	my_memcpy(arr1,arr2,9);
//	return 0;
//}


//作业标题(1463)
//模拟实现memmove
//
//作业内容
//模拟实现memmove
//void* my_memmove(void* destination,const void* source,size_t num)
//{
//	assert(destination && source);
//	void* ret = destination;
//	//向前move和向后move
//	if (destination<source)
//	{
//		//向前move
//		while (num--)
//		{
//			*(char*)destination = *(char*)source;
//			((char*)destination)++;
//			((char*)source)++;
//		}
//	}
//	else
//	{
//		//向后move
//		while (num--)
//		{
//			*((char*)destination + num) = *((char*)source + num);
//		}
//		
//	}
//	return ret;
//}
//int main()
//{
//	int arr1[] = {1,2,3,4,5,6,7,8,9,10};
//	my_memmove(arr1+2,arr1,20);
//	return 0;
//}









int main()
{
	//受限的追加
	char arr1[20] = "xxxxxxxxx";
	//strncat(arr1,"abcd",3);
	strncpy(arr1,"abcd",3);
	return 0;
}
